문자열 내림차순으로 배치하기
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
---|---|
"Zbcdefg" | "gfedcbZ" |
풀이
첫 번째 풀이
def solution(s):
return ''.join(sorted(s, reverse=True))
'A'
는 아스키코드값으로 65이고, 'a'
는 97이기 때문에,
문자열도 오름차순, 내림차순으로 정렬할 수 있습니다.
단 파이썬의 내장함수인 sort()
함수로 정렬하기 위해서는 문자열 자체로는 정렬을 할 수 없고
문자 리스트로 변환한 후에 정렬해야 합니다.
예를 들어서 문자열 "cba"
가 있다면 문자 리스트 ['c', 'b', 'a']
로 변환 후에 sort()
를 해야 합니다.
그리고 ''.join()
으로 문자 리스트를 다시 문자열로 변환해 주면 됩니다.
하지만 sorted()
함수를 사용하면 문자열을 문자 리스트로 변환해줄 필요가 없습니다.
내부적으로 문자열을 문자 리스트로 변환 후 정렬을 수행하기 때문입니다.